Document locking is the process of keeping a user from editing an electronic document while another user is editing the same document. Many existing systems provide some type of document locking in order to prevent users from simultaneously modifying a shared document. In the present discussion, the term “document” refers to any specific type of electronic document or file stored in a computer readable memory, and accessible by users through one or more executing computer programs, such as application programs, operating system programs, and/or other specific program types (e.g. through a graphical user interface or the like). A document may contain text, graphics, program code, or any other specific type of document content.
In typical existing systems that allow only one user to have write access to a document at any given time, the user that is currently editing a document is the only user that can unlock the document (e.g. by closing it) so that other users can access it. This may cause problems in a situation in which multiple users share responsibility for developing a document, since whenever one of those users has locked the document to obtain write access to it, the other users sharing the document have to depend on that single user to unlock the document so that they can later access it.
For example, a problem may arise if user A locks a document (e.g. by opening a local copy for editing), and then goes home for the evening without unlocking it. Under these circumstances, user B is unable to unlock the document to work on it that evening. User B can either wait until user A comes back to the office and unlocks the document the next day, or attempt to contact user A (e.g. by phone or e-mail) to request that the document be immediately unlocked. If user B wants to work on the document prior to user A returning to the office, and user A is not reachable, then user B may be prevented from working, causing a bottleneck in the document development process and resulting in wasted time.
Some existing systems have provided an administrative or super user account that allows access by an administrative user to all other accounts or documents. However, this type of solution simply defers the problem to an equivalent problem, namely finding the administrator user with the credentials to access the administrative account. In addition, the administrative user is unlikely to be aware of the context or importance of relative claims by different users regarding the necessity of breaking an existing lock and/or establishing a new lock on a document, and may be unable to make the business determination as to whether a request to break a lock should be granted. While these types of existing solutions provide a way to break an existing lock, they do not facilitate a correct and prompt business decision as to whether to break a lock by quickly and automatically communicating the issue to one or more appropriate people.